『プログラミング言語Standard ML入門』
2021/11出版
第1章 MLプログラミングの基本
1.1 システムの起動と終了
1.2 式の入力と評価
1.3 構文と型のエラー
1.4 変数の束縛と識別子
1.5 ファイルからのプログラムの入力
1.6 プログラムの終了と中断
第2章 関数を用いたプログラミング
2.1 関数の定義
2.2 関数適用の評価
2.3 再帰的関数
2.4 局所変数の使用
2.5 相互再帰的関数
2.6 高階の関数
2.7 関数式
2.8 変数のスコープ
2.9 2項演算子
第3章 MLの型システム
3.1 型推論と静的型チェック
3.2 型の多相性と多相関数
3.3 明示的な型宣言
3.4 関数名の多重定義とSML#のオーバーロード多相性
3.5 多相型の使用の制限
3.6 等値演算子の型の扱い
第4章 MLの基本データ型
4.1 単位型(eqtype unit)
4.2 真理値型(eqtype bool)
4.3 整数型(eqtype int,eqtype word)
4.4 実数型(type real)
4.5 文字型(eqtype char)
4.6 文字列型(eqtype string)
第5章 レコード
5.1 レコード型とレコード式
5.2 フィールド取り出し演算#l
5.3 パターンマッチングによるレコードの操作
5.4 SML#のレコード多相性
5.5 組型
第6章 リスト
6.1 リスト構造
6.2 リスト型(τ list)
6.3 パターンマッチングによるリストの分解
6.4 リスト処理の基本関数
6.5 リスト処理の一般構造と汎用のリスト処理関数
第7章 データ構造の定義と利用
7.1 datatype文によるデータ型の定義
7.2 パターンマッチングを用いたデータ構造の利用
7.3 パターンマッチングの拡張機能
7.4 システム定義のデータ型
7.5 データ型を用いたプログラミング例
7.6 無限なデータ構造の定義と利用
第8章 参照型
8.1 参照型(eqtype τ ref)と逐次評価
8.2 履歴に依存するプログラム
8.3 変更可能なデータ構造
8.4 参照型と参照透明性
8.5 参照型と値多相性
8.6 SML#のランク1多相性
第9章 例外処理
9.1 例外の定義と生成
9.2 例外ハンドラを用いた例外処理
9.3 例外を用いたプログラミング
9.4 多相型を引数とする例外
第10章 モジュールシステム
10.1 Structure文によるモジュールの定義と利用
10.2 モジュールのシグネチャの指定
10.3 不透明なシグネチャ制約とwhere type文
10.4 モジュールを用いたプログラミング例
10.5 functor文を用いたモジューラプログラミング
第11章 Standard MLの文法
11.1 表記上の約束
11.2 定数と識別子の書式
11.3 核言語式の文法構造
11.4 モジュール定義の構文構造
第II部 Standard ML基本ライブラリ
第12章 基本ライブラリの利用法
12.1 ライブラリの種類とそのシグネチャの表示法
12.2 Generalストラクチャ
12.3 トップレベル環境
第13章 配列を用いたプログラミング
13.1 配列型(eqtype’a array)
13.2 配列のソートアルゴリズム
第14章 システム時計の利用
14.1 TimeとTimerストラクチャ
第15章 入出力処理
15.1 MLの入出力処理のモデル
15.2 テキスト入出力
15.3 関数型ストリームモデルの入出力処理
15.4 簡単な字句解析処理
15.5 入出力エラーの処理
第16章 データのフォーマッティング
16.1 SubstringとStringCvtストラクチャ
16.2 文字列からのデータの読み込み
16.3 書式付き書き出し処理
第17章 OSとのインターフェイス
17.1 OSストラクチャの構造とシステムプログラミングの現状
17.2 ディレクトリとファイルの操作
18.1 SML#コンパイラの導入方法
18.2 実行コマンドの作成
18.3 分割コンパイル
18.4 外部関数の利用